#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '汤小洋'

'''
递归函数：一个函数在内部调用自身，这个函数就是递归函数
'''


# 计算x的y次方
def calc(x, y):
    # 常规方式
    # if y == 0:
    #     return 1
    # i = 1
    # res = x
    # while i < y:
    #     res = res * x
    #     i += 1
    # return res

    # 递归方式
    if y == 0:  # y为0时退出
        return 1
    else:
        return x * calc(x, y - 1)  # 不停的调用自己，递归太深可能会抛出堆栈溢出异常


print(calc(3, 5))

'''
练习：按下列规律输出： 1  1  2  3  5  8  13 21 34 55....
'''


def f3(count=10):
    def f4(n):
        if n == 1 or n == 2:
            return 1
        else:
            return f4(n - 1) + f4(n - 2)

    for i in range(1, count + 1):
        print(f4(i), end=" ")


f3(11)
